package cn.csc.module.pay.api.refund.dto;

import cn.csc.module.pay.enums.refund.PayRefundStatusEnum;
import cn.csc.module.pay.enums.refund.PayRefundTypeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 退款单状态查询 Response DTO
 *
 * @author
 */
@Data
@ApiModel("退款单状态查询 Response DTO")
public class PayRefundStatusRespDTO {


    /**
     * 商户交易订单号
     */
    @ApiModelProperty(value = "商户交易订单号", required = true, example = "cschz202401250946157")
    private String merchantOrderId;

    /**
     * 商户退款订单号，用于关联售后订单ID，TODO 暂时未投入使用
     */
    @ApiModelProperty(value = "商户退款订单号，用于关联售后订单ID，暂时未投入使用", example = "202401250946157")
    private String merchantRefundNo;

    /**
     * 退款状态
     *
     * 枚举 {@link PayRefundStatusEnum}
     */
    @ApiModelProperty(value = "退款状态，0:未退款 1退款成功 2退款失败 99退款关闭", example = "1")
    private Integer status;

    /**
     * 退款类型(部分退款，全部退款)
     *
     * 枚举 {@link PayRefundTypeEnum}
     */
    @ApiModelProperty(value = "退款类型，0:未退款 10部分退款 20全部退款", example = "20")
    private Integer type;
    /**
     * 支付金额，单位：分
     */
    @ApiModelProperty(value = "支付金额，单位：分", example = "20000")
    private Integer payAmount;
    /**
     * 退款金额，单位：分
     */
    @ApiModelProperty(value = "退款金额，单位：分", example = "20000")
    private Integer refundAmount;

    /**
     * 退款原因
     */
    @ApiModelProperty(value = "退款原因", example = "退款原因")
    private String reason;
    /**
     * 退款成功时间
     */
    @ApiModelProperty(value = "退款成功时间", example = "2023-07-12 16:47:33")
    private LocalDateTime successTime;


}
